    package com.jingxuan.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.jingxuan.entity.Cart;

@Mapper
public interface CartMapper {

    /**
     * 根据用户id和商品id查询购物车商品
     */
    Cart selectByUserIdAndProductId(@Param("userId") Long userId, @Param("productId") String productId);

    /**
     * 插入购物车商品
     */
    int insertCartItem(Cart cart);

    /**
     * 更新购物车商品数量
     */
    int updateQuantity(@Param("userId") Long userId,
                       @Param("productId") String productId,
                       @Param("quantity") Integer quantity);

    /**
     * 更新购物车商品选中状态
     */
    int updateSelected(@Param("userId") Long userId,
                       @Param("productId") String productId,
                       @Param("selected") Boolean selected);

    /**
     * 根据用户id和商品id删除购物车商品
     */
    int deleteByUserIdAndProductId(@Param("userId") Long userId, @Param("productId") String productId);

    /**
     * 清空购物车
     */
    int clearCart(@Param("userId") Long userId);

    /**
     * 根据用户id查询购物车商品列表
     */
    List<Cart> selectByUserId(@Param("userId") Long userId);
}
